package com.atguigu.jxc.dao;

import com.atguigu.jxc.entity.Goods;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @description 商品信息
 */
public interface GoodsDao {


    String getMaxCode();

    /**
     * 分页查询商品库存信息
     *
     * @param page        当前页
     * @param rows        每页显示条数
     * @param codeOrName  商品编码或名称
     * @param goodsTypeId 商品类别ID
     * @return
     */
    List<Goods> getlistInventory(@Param("page") Integer page, @Param("rows") Integer rows, @Param("codeOrName") String codeOrName,@Param("goodsTypeId") Integer goodsTypeId);

    List<Goods> getList(@Param("page") int page, @Param("rows") Integer rows, @Param("goodsName") String goodsName, @Param("goodsTypeId") Integer goodsTypeId);

    void insert(Goods goods);

    void update(Goods goods);

    int delete(Integer goodsId);

    List<Goods> getNoInventoryQuantity(@Param("page") int page, @Param("rows") Integer rows, @Param("nameOrCode") String nameOrCode);

    List<Goods> getHasInventoryQuantity(@Param("page") int page, @Param("rows") Integer rows, @Param("nameOrCode") String nameOrCode);

    void saveStock(@Param("inventoryQuantity") Integer inventoryQuantity, @Param("purchasingPrice") double purchasingPrice,@Param("goodsId") Integer goodsId);

    int deleteStock(Integer goodsId);

    List<Goods> listAlarm();
}
